package mx.frantor.catalogos.bussines;

import static mx.frantor.security.util.EncriptaCadena.*;


import java.util.List;

import net.sf.jasperreports.data.cache.EmptyColumnValues;

import mx.frantor.catalogos.dao.MateriaPrimaPassDAO;
import mx.frantor.catalogos.dao.UsuariosDAO;
import mx.frantor.catalogos.daoimp.ClaveUsrDAOImpl;
import mx.frantor.catalogos.daoimp.UsuariosDAOImpl;
import mx.frantor.catalogos.entitys.ClaveUsrEntity;
import mx.frantor.catalogos.entitys.DetallePedidoEntity;
import mx.frantor.catalogos.entitys.UsuariosEntity;

public class ClaveUsuariosBussines {
	
	private MateriaPrimaPassDAO usrsDAO = new ClaveUsrDAOImpl();
	// Hash de encriptacion : MD5, SHA1, SHA256, SHA384, SHA512
	private final String hash = SHA256;
	String res=null;	
	
	public String AgregarClaveUsuario(long idusuario, String password){
		ClaveUsrEntity nuevoClaveUsr = new ClaveUsrEntity();
	
		nuevoClaveUsr.setPassword(getDigest(password, hash));
		nuevoClaveUsr.setIdusuario(idusuario);
		
		res = usrsDAO.agregarPassMP(nuevoClaveUsr);
		res="";
		return res;
	}
	
	public String ModificarUsuario(long idClave, long idusuario, String password){
		ClaveUsrEntity nuevoClaveUsr = new ClaveUsrEntity();
		nuevoClaveUsr.setIdClave(idClave);
		nuevoClaveUsr.setPassword(getDigest(password, hash));
		nuevoClaveUsr.setIdusuario(idusuario);
		
		res = usrsDAO.modificarPassMp(nuevoClaveUsr);
		res="";
		return res;
	}
	
	public String EliminarUsuario(Integer idClaveUsr){
		res = usrsDAO.eliminarPassMp(idClaveUsr);
		return res;
	}
		
	/**
	 * 
	 * @param inUsr
	 * @param inPwd
	 * @return Usuario valido o null si usuario o passwd son invalidos
	 * 
	 */
	public ClaveUsrEntity getUsuariopassPorIdusuario(long IdUsuarios){
		ClaveUsrEntity lstclientes = usrsDAO.getUsuariopassPorIdusuario(IdUsuarios);
		if (lstclientes== null){
			return null;
		}
		else {
			return lstclientes;
		}
	}
	
	public ClaveUsrEntity validaUsuario(Integer idUsuario, String inPwd) {
		ClaveUsrEntity usrResult = new ClaveUsrEntity();
		try{
			usrResult = usrsDAO.validaUsuario(idUsuario, inPwd);
			
			return usrResult;
		}catch(IndexOutOfBoundsException exc){
			System.out.println("El usuario "+ idUsuario +" no existe o es invalido: " + exc.getMessage());
			return null;
			
		}

	}
	

}
